package one.stand.service;

import one.stand.dto.CollectionDto;
import one.stand.dto.CommentDto;
import one.stand.dto.LiveRoomDto;
import one.stand.dto.ThumbsDto;
import one.stand.enums.SeeRecordEnums;

import java.util.List;

public interface RecordPublicService {
    /**
     * 收藏：1产品，2文章，3企业,4直播,5直播预约 6用户 7评论
     */
    int ITEMTYPE_GOODS = 1;
    int ITEMTYPE_ART = 2;
    int ITEMTYPE_COMPANY = 3;
    int ITEMTYPE_LIVE_ROOM = 4;
    int ITEMTYPE_LIVE_ROOM_PRE = 5;
    int ITEMTYPE_USER = 6;
    int ITEMTYPE_COMMENT = 7;

    /**
     * 微信FORM_ID：1小程序 2CRM
     */
    int FORM_ID_TYPE_USER = 1;
    int FORM_ID_TYPE_CRM = 2;

    /**
     * 对象类型：1名片，2文章/动态
     */
    int THUMBS_TYPE_CARD = 1;
    int THUMBS_TYPE_ARTICLE = 2;

    /**
     * 浏览：2产品
     */
    int SEE_GOODS = 2;

    /**
     * 小程序分享-直播间
     */
    String WECHAT_SHARE_ROOM = "pages/live/live/main?cardId=%s&companyId=%s&roomId=%s";

    /**
     * 拨打电话记录
     */
    Long callCount(Integer userId, Integer cardId, Integer companyId);

    /**
     * 收藏
     */
    CollectionDto getCollection(Integer userId, Integer itemType, Integer itemId);

    boolean isCollection(Integer userId, Integer itemType, Integer itemId);

    Integer getCollectionCount(Integer itemType, Integer itemId);

    List<Integer> getCollection(Integer itemType, Integer itemId);

    Integer formIdCount(Integer userId, int type);

    /**
     * 咨询记录
     */
    Long consultCount(Integer userId, Integer cardId, Integer companyId);

    /**
     * 点赞
     */
    boolean isThumbs(Integer userId, Integer itemType, Integer itemId);

    /**
     * 点赞次数
     */
    int getThumbsCount(Integer itemType, Integer itemId);

    String getThumbsNames(Integer itemType, Integer itemId);

    List<ThumbsDto> getThumbsImgs(Integer itemType, Integer itemId);

    /**
     * 直播间
     */
    LiveRoomDto getLiveRoom(Integer roomId);

    /**
     * 直播间-小程序路径
     */
    String getLiveRoomWxUrl(Integer roomId);


    /**
     * 评论
     */
    Long countComment(Integer userId, Integer companyId);

    Integer countCommentByDynamic(Integer dynamicId);

    Integer countCommentByType(Integer type, Integer dynamicId);

    List<CommentDto> getCommentList(Integer dynamicId, Integer limit);

    List<CommentDto> getCommentList(Integer userId);

    /**
     * 人气
     */
    Long getPopularity(Integer code, Integer goodsId);

    /**
     * 增加人气
     */
    void addPopularity(SeeRecordEnums seeRecordEnum, Integer goodsId);
}
